#include<iostream>

using namespace std;

const int maxn = 100010;

//e[]表示当前节点的值
//r[]表示当前结点的右节点
//l[]表示当前结点的左节点
//idx表示下标
int e[maxn] , r[maxn] , l[maxn] , idx;

//初始化
void init() {
    //因为 0 个结点是头结点，1 个结点是尾结点，初始状态下就是头结点的右指针指向尾结点，尾结点的左指针指向头结点
    r[0] = 1 ;
    l[1] = 0 ;
    idx =  2 ;
}

//在第 k 个结点的右边插入一个 x
void add(int k , int x) {
    e[idx] = x ;
    l[idx] = k ;
    r[idx] = r[k] ;
    l[r[k]] = idx ;
    r[k] = idx ;
}

//删除第 k 个结点
void remove(int k){
    r[l[k]] = r[k] ;
    r[k] = l[k] ;
}